#include "MainTaskFsm.h"
#include "BaseDef.h"

//#include "BspGpioBase.h"
//#include "BspUartBase.h"

//#include "uart.h"

Main_Task_Def sys_task;

fsm_err_t Init_Main_Task_Callback(void){
	fsm_err_t res = STATUS_EOK;
	
	
	
	return res;
}

// 对时初始化
fsm_err_t Rtc_Time_Flash_Callback(void){
	fsm_err_t res = STATUS_EOK;
	
	
	
	return res;
}// 对时初始化

// 初始化任务列表
fsm_err_t Init_Task_List_Callback(void){
	fsm_err_t res = STATUS_EOK;
	
	// 先关闭IMU
//  Gpio_ClrIO(IMU406_PORT, IMU406_PIN);

	
	// 关闭全部外部中断，防止系统被打断
	// 关闭串口0中断
//	Uart_DisableIrq(M0P_UART0, UartRxIrq);
//  Uart_DisableIrq(M0P_UART0, UartTxIrq);
//	// 关闭串口1中断
//	Uart_DisableIrq(M0P_UART0, UartRxIrq);
//  Uart_DisableIrq(M0P_UART0, UartTxIrq);
//	// 关闭串口2中断
//	Uart_DisableIrq(M0P_UART2, UartRxIrq);
//  Uart_DisableIrq(M0P_UART2, UartTxIrq);
//	// 关闭串口3中断
//	Uart_DisableIrq(M0P_UART3, UartRxIrq);
//  Uart_DisableIrq(M0P_UART3, UartTxIrq);
	
	return res;
}// 对时初始化

// 任务主循环
void Main_Task_Loop_Interface(){
	while(true) {
	}
}// 任务主循环

// 创建主任务
void Create_Main_Task_Obj() {
	sys_task.sys_fsm.Register_Action(&sys_task.sys_fsm, MAIN_TASK_INIT, 0x00, Init_Main_Task_Callback);
	sys_task.sys_fsm.Active_Status(&sys_task.sys_fsm, MAIN_TASK_INIT, false);
	sys_task.sys_fsm.Register_Action(&sys_task.sys_fsm, RTC_TIME_FLASH, (MAIN_TASK_INIT | INIT_TASK_LIST), Rtc_Time_Flash_Callback);
	sys_task.sys_fsm.Active_Status(&sys_task.sys_fsm, RTC_TIME_FLASH, false);
	sys_task.sys_fsm.Register_Action(&sys_task.sys_fsm, INIT_TASK_LIST, (MAIN_TASK_INIT), Init_Task_List_Callback);
	sys_task.sys_fsm.Active_Status(&sys_task.sys_fsm, INIT_TASK_LIST, false);
	sc_map_put_fsm(&fsm_list, "sys_fsm", &sys_task.sys_fsm);
} // 创建主任务
